
#ifndef _ABS_DATAITEM_H_
#define _ABS_DATAITEM_H_

#include <QTreeWidgetItem>
#include <QTreeWidget>

#include <vtkRenderer.h>

#include "AbstractObject.hpp"
#include "../OLCore/AbstractMenu.hpp"
#include "../OLApp/defines.hpp"

namespace NSCore {

	class COREAPI AbstractDataItem:
		public QTreeWidgetItem,
		public AbstractObject
	{
	public:
		AbstractDataItem();
		AbstractDataItem(QTreeWidget* tree);
		AbstractDataItem(QTreeWidgetItem* view);
		virtual ~AbstractDataItem();
	/*override*/
	public:
		virtual inline QString className() { return "AbstractDataItem"; };
		virtual void getPropertyTree(QTreeWidget* p_tree);
		virtual void addFeature(Sp(vtkProp3D) prop) { m_features.append(prop); };
		virtual QList<Sp(vtkProp3D)> getFeatures() { return m_features; };
	public:

	protected:
		QList<Sp(vtkProp3D)> m_features;
	private:
		void _init();


	};


}

#endif

